package com.ruoyi.business.service.koc;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.business.domain.dto.admin.koc.TbUserKocPointsLogPageQueryDTO;
import com.ruoyi.business.domain.koc.TbUserKocPointsLog;
import com.ruoyi.business.domain.koc.TbUserKocTaskInfo;
import com.ruoyi.business.domain.vo.TbUserKocPointsLogPageVO;
import com.ruoyi.business.domain.vo.TbUserKocPointsLogStatisticVO;
import com.ruoyi.business.domain.vo.TbUserKocPointsRankVO;
import com.ruoyi.business.domain.vo.TraceabilityDetailVO;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;

import java.util.List;

/**
 * 用户获取积分流水Service接口
 *
 * @author ruoyi
 * @date 2025-09-11
 */
public interface ITbUserKocPointsLogService extends IService<TbUserKocPointsLog> {

    TableDataInfo<TbUserKocPointsLogPageVO> selectPageList(TbUserKocPointsLogPageQueryDTO tbUserKocPointsLogPageQueryDTO, PageQuery pageQuery);

    TraceabilityDetailVO selectDetail(long id);

    TableDataInfo<TbUserKocPointsLog> queryMyPointLogsPage(Long userId, Long checkBusinessId, String kocDate, Long taskId, Integer type, Integer sourceType, PageQuery pageQuery);

    TbUserKocPointsRankVO userPointsRank();

    List<TbUserKocTaskInfo> queryBySourceId(Long sourceId);

    TableDataInfo<TbUserKocPointsLogStatisticVO> queryMyPointLogsStatisticPage(Long userId, String kocDate, PageQuery pageQuery);

}
